package com.example.basicdemo.model.request;

import com.isyscore.os.dev.api.IsyscoreObject;
import com.isyscore.os.dev.api.IsyscoreRequest;
import com.example.basicdemo.model.response.GetAllDegreeResponse;
import com.isyscore.os.dev.util.IsyscoreHashMap;
import com.isyscore.os.dev.util.ProdCodeEnums;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.Map;

/**
 * 获取所有学历信息
 */
@Deprecated
public class GetAllDegreeRequest implements IsyscoreRequest<GetAllDegreeResponse> {

    private IsyscoreHashMap textParam;
    private IsyscoreHashMap headerParam;
    private String apiVersion = "2.0";
    private String pathValue;
    private boolean needEncrypt = false;
    private IsyscoreObject bizModel = null;

    /**
     * 获取服务地址
     * 通过设置新的serverHost可覆盖统一配置的serverHost
     * 实现该方法可达到个性化调用不同地址的接口
     *
     * @return
     */
    @Override
    public String getServerHost() {
        return null;
    }

    /**
     * 获取API URL
     * 指定API URL, 请求将通过指定的地址进行API调用
     *
     * @return
     */
    @Override
    public String getApiUrl() {
        return "/api/permission/ldapDegree/query";
    }

    /**
     * 获取请求方法(GET, POST, PUT, DELETE)
     * 指定请求方法, 请求将通过指定方法进行API调用
     *
     * @return
     */
    @Override
    public RequestMethod getRequestMethod() {
        return RequestMethod.GET;
    }

    /**
     * 获取请求头内容类型
     * 指定内容类型, 请求将在请求头中指定相应类型进行API调用
     *
     * @return
     */
    @Override
    public String getContentType() {
        return null;
    }

    /**
     * 添加其他请求参数
     * 用于满足额外请求参数的需求
     *
     * @param key
     * @param value
     */
    @Override
    public void putOtherTextParam(String key, Object value) {

    }

    /**
     * 获取请求参数
     *
     * @return
     */
    @Override
    public Map<String, Object> getTextParams() {
        return null;
    }

    /**
     * 获取请求头参数
     *
     * @return
     */
    @Override
    public Map<String, Object> getHeaderParams() {
        return this.headerParam;
    }

    /**
     * 添加其他请求头参数
     * 用于满足额外的请求头参数需求
     *
     * @param key
     * @param value
     */
    @Override
    public void putOtherHeaderParams(String key, Object value) {

    }

    /**
     * 初始化请求头参数
     * 用于快速添加请求头参数
     *
     * @param headerParam
     */
    @Override
    public void initHeaderParams(IsyscoreHashMap headerParam) {
        this.headerParam = new IsyscoreHashMap(headerParam);
    }

    /**
     * 获取API版本号
     *
     * @return
     */
    @Override
    public String getApiVersion() {
        return this.apiVersion;
    }

    /**
     * 设置API版本号
     *
     * @param apiVersion
     */
    @Override
    public void setApiVersion(String apiVersion) {
        this.apiVersion = apiVersion;
    }

    /**
     * 获取通知地址
     *
     * @return
     */
    @Override
    public String getNotifyUrl() {
        return null;
    }

    /**
     * 设置通知地址
     *
     * @param notifyUrl
     */
    @Override
    public void setNotifyUrl(String notifyUrl) {

    }

    /**
     * 获取回调地址
     *
     * @return
     */
    @Override
    public String getReturnUrl() {
        return null;
    }

    /**
     * 设置回调地址
     *
     * @param returnUrl
     */
    @Override
    public void setReturnUrl(String returnUrl) {

    }

    /**
     * 获取返回结果类型
     *
     * @return
     */
    @Override
    public Class<GetAllDegreeResponse> getResponseClass() {
        return GetAllDegreeResponse.class;
    }

    /**
     * 是否需要加密参数
     *
     * @return
     */
    @Override
    public boolean isNeedEncrypt() {
        return false;
    }

    /**
     * 设置是否需要加密参数
     *
     * @param needEncrypt
     */
    @Override
    public void setNeedEncrypt(boolean needEncrypt) {
        this.needEncrypt = needEncrypt;
    }

    /**
     * 获取请求业务类
     *
     * @return
     */
    @Override
    public IsyscoreObject getBizModel() {
        return null;
    }

    /**
     * 设置请求业务类
     *
     * @param isyscoreObject
     */
    @Override
    public void setBizModel(IsyscoreObject isyscoreObject) {

    }

    /**
     * 获取所属产品Code
     *
     * @return
     */
    @Override
    public String getProdCode() {
        return ProdCodeEnums.PERMISSION.getCode();
    }

    /**
     * 设置所处产品Code
     *
     * @param prodCode
     */
    @Override
    public void setProdCode(String prodCode) {

    }

    /**
     * 获取PathValue
     *
     * @return
     */
    @Override
    public String getPathValue() {
        return null;
    }

    /**
     * 设置PathValue
     * 设置pathValue将在API URL后缀进行拼接 如下:
     * api url: /demo/api/name
     * pathValue: id
     * requestUrl: /demo/api/name/id
     *
     * @param pathValue
     */
    @Override
    public void setPathValue(String pathValue) {

    }

    /**
     * 设置PointId
     * pointId为埋点ID， 根据实际埋点需求设置pointId
     *
     * @param pointId
     */
    @Override
    public void setPointId(String pointId) {

    }

    /**
     * 获取PointId
     */
    @Override
    public String getPointId() {
        return null;
    }
}
